package com.example.core.entity;

import com.example.core.enums.ResultCode;
import lombok.Data;

import java.util.ArrayList;
import java.util.List;

@Data
public class PageDataInfo<T> {

    /**
     * 总记录数
     */
    private long total;

    /**
     * 列表数据
     */
    private List<T> rows;

    /**
     * 消息状态码
     */
    private int code;

    /**
     * 消息内容
     */
    private String msg;

    //未查出任何数据时调用
    public static <T> PageDataInfo<T> empty() {
        PageDataInfo<T> rspData = new PageDataInfo<>();
        rspData.setCode(ResultCode.SUCCESS.getCode());
        rspData.setRows(new ArrayList<>());
        rspData.setMsg(ResultCode.SUCCESS.getMsg());
        rspData.setTotal(0);
        return rspData;
    }

    //查出数据时调用
    public static <T> PageDataInfo<T> success(List<T> list, long total) {
        PageDataInfo<T> rspData = new PageDataInfo<>();
        rspData.setCode(ResultCode.SUCCESS.getCode());
        rspData.setRows(list);
        rspData.setMsg(ResultCode.SUCCESS.getMsg());
        rspData.setTotal(total);
        return rspData;
    }
}
